#include "gridlayout_spacers.h"
#include "ui_gridlayout_spacers.h"

GridLayout_Spacers::GridLayout_Spacers(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::GridLayout_Spacers)
{
    //ui->setupUi(this);

    //创建按钮
    btn1 = new QPushButton(this);
    //设置按钮的内容
    btn1->setText("第一个按钮");
    //设置固定高度
    btn1->setFixedHeight(40);
    //这个函数设置了按钮的大小策略。
    //QSizePolicy::Expanding表示当控件允许时，按钮会自动扩展空间
    btn1->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);
    //创建第二个按钮
    btn2 = new QPushButton(this);
    btn2->setText("第二个按钮");
    btn2->setFixedWidth(150);
    btn2->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);
    // 创建第三个按钮
    btn3 = new QPushButton(this);
    btn3->setText("第三个按钮");
    btn3->setFixedHeight(40);
    //设置按钮的大小策略
    btn3->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);
    //创建第四个按钮
    btn4 = new QPushButton(this);
    btn4->setText("第四个按钮");
    btn4->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);

    //创建布局
    grid = new QGridLayout();
    //将控件添加到布局中。
    //addWidget(参数1,参数2，参数3，参数4，参数5，参数6)；
    /*
     * 1:插入的子布局对象
     * 2：插入的开始行
     * 3：插入的开始列
     * 4：占用的行数
     * 5：占用的列数
     * 6：指定对齐方式
    */
    grid->addWidget(btn1,0,1);
    grid->addWidget(btn2,0,0,3,1);
    grid->addWidget(btn3,2,1);
    grid->addWidget(btn4,1,1);
    //设置布局四周的距离，主要方便周围布局的使用
    //四个数据是从左边开始绕一圈
    grid->setContentsMargins(10,20,30,40);

    //设置网格布局控件个控件之间的间距
    grid->setSpacing(20);

    //把网格布局设置为当前窗口。
    setLayout(grid);
}

GridLayout_Spacers::~GridLayout_Spacers()
{
    delete ui;
}
